Alef (programming language)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Alef is a discontinued concurrent programming language, designed as part of the Plan 9 operating system by Phil Winterbottom of Bell Labs. It implemented the channel-based concurrency model of Newsqueak in a compiled, C-like language.
Contents
• History
• Example
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
History
Alef appeared in the first and second editions of Plan 9, but was abandoned during development of the third edition.cite-ref-alefref-1-0[1]cite-ref-3e-preface-2-0[2] Rob Pike later explained Alef's demise by pointing to its lack of automatic memory management, despite Pike's and other people's urging Winterbottom to add garbage collection to the language;cite-ref-3[3] also, in a February 2000 slideshow, Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took what we learned from it and built the thread library for C."cite-ref-4[4]
Alef was superseded by two programming environments. The Limbo programming language can be considered a direct successor of Alef and is the most commonly used language in the Inferno operating system. The Alef concurrency model was replicated in the third edition of Plan 9 in the form of the libthread library, which makes some of Alef's functionality available to C programs and allowed existing Alef programs (such as Acme) to be translated.cite-ref-libthread-5-0[5]
Example
(int, byte*, byte)
func()
{
return (10, "hello", 'c');
}
void
main()
{
int a;
byte* str;
byte c;
(a, str, c) = func();
}
See also
References
cite-note-alefref-11. ↑ citerefwinterbottom1995Winterbottom, Phil (1995). "Alef Language Reference Manual". Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T.
cite-note-3e-preface-22. ↑ "Preface to the Third (2000) Edition". Plan 9 Manual. Murray Hill: Bell Labs. June 2000. Archived from the original on 2015-02-05. Retrieved 2012-10-29.
cite-note-33. ↑ citerefpike2010Pike, Rob (2010). Origins of Go concurrency style. OSCON Emerging Languages Camp. Archived from the original on 2021-12-13.
cite-note-44. ↑ citerefpikePike, Rob. "Rio: Design of a Concurrent Window System" (PDF). Retrieved 8 March 2013.
cite-note-libthread-55. ↑ "thread(2)". Plan 9 Manual. Retrieved 2012-10-29.
• citerefflandrena1995Flandrena, Bob (1995). "Alef Users' Guide". Plan 9 Programmer's Manual: Volume Two. Murray Hill: Bell Labs.